﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevComponents.DotNetBar;
using QuanLyHocPhi.DAL;
using QuanLyHocPhi.Entity;
using QuanLyHocPhi.Util;
namespace QuanLyHocPhi
{
    public partial class frmHoadon : DevComponents.DotNetBar.Metro.MetroForm
    {
        HOA_DON_DAO daoHoaDon = new HOA_DON_DAO();
        HOA_DON_CT_DAO daoHoaDonCT = new HOA_DON_CT_DAO();
        DOI_TUONG_DAO daoLoaiLop = new DOI_TUONG_DAO();
        IList<DOI_TUONG> dsLoaiLop;
        IList<HOA_DON> dsHoaDon;
        IList<HOA_DON> dsHoaDon2;
        //IList<LOP_HOC
        HOA_DON hoaDonHienTai;
        HOA_DON hoaDonHienTai2;
        public frmHoadon()
        {
            InitializeComponent();
            dsLoaiLop = daoLoaiLop.GetObjectsByLOP("class_type");
            cbbLoailop.DisplayMember = "TEN_DOI_TUONG";
            cbbLoailop.ValueMember = "MA_DOI_TUONG";
            cmbLoaiLop2.DisplayMember = "TEN_DOI_TUONG";
            cmbLoaiLop2.ValueMember = "MA_DOI_TUONG";
            cbbLoailop.DataSource = dsLoaiLop;
            cmbLoaiLop2.DataSource = dsLoaiLop;
            cbbLoailop.SelectedIndex = -1;
            cmbLoaiLop2.SelectedIndex = -1;
            NapDuLieu();
            NapDuLieu2();
        }

        private void buttonX8_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnNangCap_Click(object sender, EventArgs e)
        {
            int newId=0;
            if (dgvHoaDon.CurrentRow.Index < 0)
            {
                MessageBox.Show("Bạn chưa chọn phần tử nào");
                return;
            }
            if (MessageBox.Show("Bạn có chắc chắn tiếp tục thao tác NÂNG CẤP?", "Xác nhận",MessageBoxButtons.YesNo) != DialogResult.Yes)
            {
                return;
            }
            HOA_DON newInv = new HOA_DON();           ;

            newInv.SINH_VIEN=hoaDonHienTai.SINH_VIEN;
            newInv.NGAY_KICH_HOAT=DateTime.Now;
            newInv.GHI_CHU="upgrade";
            newInv.DANG_KY_NHOM = 1;
            newInv.KICH_HOAT = true;
            FrmLoaiLop frmLoaiLop = new FrmLoaiLop(dsLoaiLop);
           // frmLoaiLop.Modal = true;
            frmLoaiLop.ShowDialog(this);
            newInv.MA_LOAI_LOP=frmLoaiLop.LoaiLopHienTai;
            newInv.MA_MUC_PHI=frmLoaiLop.MucPhiHienTai;
            //insert information to database
            //StudentBusiness busStudent = new StudentBusiness();
            //if (busStudent.insert(newInv.getStudent()) > 0)
            {
                if (daoHoaDon.Insert(newInv,out newId))
                {
                    newInv.MA_HOA_DON = newId;
                    if (daoHoaDonCT.GenSubInvoices(new HOA_DON_CT(){MA_HOA_DON=newInv}))
                    {
                        MessageBox.Show("Nâng cấp thành công");
                    }
                    else
                    {
                        MessageBox.Show("Lỗi");
                    }
                }
                else
                {
                    MessageBox.Show(this, "Lỗi trong quá trình tạo chi tiết hóa đơn", "Lỗi",MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
           // else
          //  {
           //     MessageBox.showConfirmDialog(this, "Error occured when trying to insert student information.", "Error", MessageBox.ERROR_MESSAGE);
           // }
        }

        private void dgvHoaDon_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex >= 0 && e.RowIndex < dgvHoaDon.Rows.Count)
            {
                hoaDonHienTai = dsHoaDon[e.RowIndex];                
                txtTenSV.Text = hoaDonHienTai.SINH_VIEN.TEN_SV;
                txtMaSV.Text = hoaDonHienTai.SINH_VIEN.MA_SO_SV;
                txtSoDienThoai.Text = hoaDonHienTai.SINH_VIEN.SO_DIEN_THOAI;
                txtEmail.Text = hoaDonHienTai.SINH_VIEN.EMAIL;
                txtDiaChi.Text = hoaDonHienTai.SINH_VIEN.DIA_CHI;
                dpkNgaySinh.Value = hoaDonHienTai.SINH_VIEN.NGAY_SINH;
                dpkNgayKichHoat.Value = hoaDonHienTai.NGAY_KICH_HOAT;
                cmbLoaiLop.Text = hoaDonHienTai.MA_LOAI_LOP.TEN_DOI_TUONG;
                cbbSoLanTT.Text = hoaDonHienTai.MA_MUC_PHI.SO_LAN_THANH_TOAN.ToString();
                cbbDKNhom.Text = hoaDonHienTai.DANG_KY_NHOM.ToString();
                if (hoaDonHienTai.MA_LOP_HOC != null) cbbLop.Text = hoaDonHienTai.MA_LOP_HOC.TEN_LOP_HOC;
                cbxNam.Checked = hoaDonHienTai.SINH_VIEN.GIOI_TINH; 
                cbxNu.Checked = !hoaDonHienTai.SINH_VIEN.GIOI_TINH; 
        
                txtGhiChu.Text = hoaDonHienTai.GHI_CHU;

            }
        }

        private void tabControl1_Click(object sender, EventArgs e)
        {
            NapDuLieu2();
        }

        private void dgvHoaDon2_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex >= 0 && e.RowIndex < dgvHoaDon.Rows.Count)
            {
                hoaDonHienTai2 = dsHoaDon2[e.RowIndex];
                txtTenSV2.Text = hoaDonHienTai2.SINH_VIEN.TEN_SV;
                txtMaSV2.Text = hoaDonHienTai2.SINH_VIEN.MA_SO_SV;
                txtSoDT2.Text = hoaDonHienTai2.SINH_VIEN.SO_DIEN_THOAI;
                txtEmail2.Text = hoaDonHienTai2.SINH_VIEN.EMAIL;
                txtDiaChi2.Text = hoaDonHienTai2.SINH_VIEN.DIA_CHI;
                dpkNgaySinh2.Value = hoaDonHienTai2.SINH_VIEN.NGAY_SINH;
                dpkNgayKichHoat2.Value = hoaDonHienTai2.NGAY_KICH_HOAT;
                cbbLoaiLop2.Text = hoaDonHienTai2.MA_LOAI_LOP.TEN_DOI_TUONG;
                cbbSoLanTT2.Text = hoaDonHienTai2.MA_MUC_PHI.SO_LAN_THANH_TOAN.ToString();
                cbbDangKiNhom2.Text = hoaDonHienTai2.DANG_KY_NHOM.ToString();
                if (hoaDonHienTai2.MA_LOP_HOC.TEN_LOP_HOC!=null) cbbLop2.Text = hoaDonHienTai2.MA_LOP_HOC.TEN_LOP_HOC;

                txtGhiChu2.Text = hoaDonHienTai2.GHI_CHU;
                if (hoaDonHienTai2.MA_LOP_HOC != null) cbbLop.Text = hoaDonHienTai2.MA_LOP_HOC.TEN_LOP_HOC;
                cbxNam.Checked = hoaDonHienTai2.SINH_VIEN.GIOI_TINH;
                cbxNu.Checked = !hoaDonHienTai2.SINH_VIEN.GIOI_TINH;
               
            }
        }

        private void btnTimkiem_Click(object sender, EventArgs e)
        {
            NapDuLieu();
        }
        void NapDuLieu()
        {
            //nap ds hoa don
            string keyword = "%" + txtTensinhvien.Text + "%";
            int maLoaiLop = cbbLoailop.SelectedIndex > -1 ? dsLoaiLop[cbbLoailop.SelectedIndex].MA_DOI_TUONG : 0;
            dsHoaDon = daoHoaDon.GetActivatedInvoices(keyword, maLoaiLop);
            objectBindingSource1.DataSource = dsHoaDon;
            dgvHoaDon.AutoGenerateColumns = false;
            dgvHoaDon.AllowUserToAddRows = false;
            dgvHoaDon.AllowUserToDeleteRows = false;
            dgvHoaDon.DataSource = objectBindingSource1;
            cbbLoailop.SelectedIndex = -1;
        }
        void NapDuLieu2()
        {
            string keyword = "%" + txtSearch2.Text + "%";
            int maLoaiLop = cmbLoaiLop2.SelectedIndex > -1 ? dsLoaiLop[cmbLoaiLop2.SelectedIndex].MA_DOI_TUONG : 0;
            dsHoaDon2 = daoHoaDon.GetUnactivatedInvoices(keyword, maLoaiLop);
            objectBindingSource2.DataSource = dsHoaDon2;
            dgvHoaDon2.AutoGenerateColumns = false;
            dgvHoaDon2.AllowUserToAddRows = false;
            dgvHoaDon2.AllowUserToDeleteRows = false;
            dgvHoaDon2.DataSource = objectBindingSource2;
            cmbLoaiLop2.SelectedIndex = -1;

        }
        private void btnCapNhat_Click(object sender, EventArgs e)
        {
            if (txtGhiChu.Text != "")
            {
                hoaDonHienTai.GHI_CHU = txtGhiChu.Text;
                daoHoaDon.Update(hoaDonHienTai);
            }
        }

        private void buttonX3_Click(object sender, EventArgs e)
        {            
            if (MessageBox.Show("Bạn có chắc chắn muốn xóa hợp đồng? Cảnh báo: Mọi thông tin liên quan đến hợp đồng sẽ mất","Cảnh báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) != DialogResult.OK)
            {
                return;
            }
            if (daoHoaDon.Delete(hoaDonHienTai.MA_HOA_DON))
            {
                MessageBox.Show("Xóa thông tin hợp đồng thành công");
            }
            else
            {
                MessageBox.Show("Lỗi");
            }
            NapDuLieu();
        }

        private void btnXoa2_Click(object sender, EventArgs e)
        {
            if (dgvHoaDon2.CurrentRow.Index < 0) { MessageBox.Show("Chọn phần tử cần xóa"); }
            if (MessageBox.Show("Bạn có chắc chắn muốn xóa hợp đồng? Cảnh báo: Mọi thông tin liên quan đến hợp đồng sẽ mất", "Cảnh báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) != DialogResult.OK)
            {
                return;
            }
            if (daoHoaDon.Delete(hoaDonHienTai2.MA_HOA_DON))
            {
                MessageBox.Show("Xóa thông tin hợp đồng thành công");
            }
            else
            {
                MessageBox.Show("Lỗi");
            }
            NapDuLieu2();
        }

        private void btnCapNhat2_Click(object sender, EventArgs e)
        {
            if (txtGhiChu2.Text != "")
            {
                hoaDonHienTai2.GHI_CHU = txtGhiChu2.Text;
                daoHoaDon.Update(hoaDonHienTai2);
            }
        }

        private void buttonX9_Click(object sender, EventArgs e)
        {
            NapDuLieu2();

        }

        private void btnKichHoat_Click(object sender, EventArgs e)
        {
            if (dgvHoaDon2.CurrentRow.Index < 0)
            {
                MessageBox.Show("Vui lòng chọn phần tử");
                return;
            }
            hoaDonHienTai2.KICH_HOAT = true;
            if (daoHoaDon.KICH_HOAT(hoaDonHienTai2))
            {
                dsHoaDon.Add(hoaDonHienTai2);
                MessageBox.Show("Hợp đồng được kích hoạt thành công");
            }
            NapDuLieu2();
        }

        private void dgvHoaDon_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }

        private void tabControlPanel1_Click(object sender, EventArgs e)
        {

        }

    }
}